Menangkap Digit Paling Belakang
Trik rahasia OSN: Bagaimana cara mengambil digit satuan dari angka ribuan?
👩🏫 Secara Formal:
Jika kamu melakukan operasi X % 10 (X modulo 10) pada bilangan bulat manapun, hasilnya selalu digit paling akhir (satuan) dari bilangan tersebut.
Contoh: 4589 % 10 = 9. Mengapa? Karena 4589 dibagi 10 adalah 458, bersisa 9.
Analogi Jaman Now: Kamera Pintu Tol
"Bayangkan angka 4589 adalah sebuah mobil panjang yang sedang lewat pintu tol. Operasi % 10 itu ibarat kamera pintu tol yang HANYA memotret bumper belakang mobil tersebut. Berapapun panjang mobilnya (angkanya), kamera hanya melihat angka yang paling belakang!"
Membuang Digit Paling Belakang
Setelah mengambil digitnya, bagaimana cara membuangnya agar kita bisa lanjut ke digit berikutnya?
👩🏫 Secara Formal:
Jika kamu membagi bilangan bulat dengan 10 (X / 10) pada bahasa C++ (yang membuang nilai desimalnya), efeknya adalah membuang/menghapus digit paling akhir.
Contoh: 4589 / 10 = 458 (karena koma ,9 nya dibuang oleh integer division).
Analogi Jaman Now: Mesin Pemotong Sosis
"Jika angka adalah sebuah sosis panjang (misal 4589). Operasi % 10 akan mengambil potongan sosis paling ujung (9) untuk dimakan. Tapi sisa sosisnya (4589) belum berkurang di dunia nyata! Agar sosisnya benar-benar terpotong, kita gunakan pisau / 10. ZRAAASH! Angka 9 terbuang, menyisakan 458."
Lab Mesin Pemecah Angka
Pola ini hampir 100% selalu keluar di soal perulangan (*while loop*) OSN tingkat Kabupaten.
Mesin While Loop
Visualisasi Ekstraksi
Question Card
Jika kamu ingin menghitung jumlah digit dari sebuah angka (misal 12345 punya 5 digit), bagaimana caranya menggunakan teknik % 10 dan / 10?
Jawaban: Gunakan while loop! Setiap kali kamu bagi angka dengan 10 (x = x / 10), kamu membuang 1 digit. Jadi tinggal hitung berapa kali kamu bisa membagi sampai angkanya jadi 0. Contoh: int count = 0; while(x > 0) { count++; x = x / 10; }. Untuk 12345: loop berjalan 5 kali (12345 -> 1234 -> 123 -> 12 -> 1 -> 0). Jadi count = 5!